package com.orange.core.pojo.rsp.usercoupon;

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class UserCouponExcel implements Serializable {

    @ExcelProperty("用户id")
    private Integer userId;

    @ExcelProperty("优惠券id")
    private Integer couponId;

    @ExcelProperty("商户id")
    private Integer shopId;

    @ExcelProperty("订单号")
    private String orderNo;

    @ExcelProperty("优惠券标题")
    private String title;

    @ExcelProperty("优惠券价值")
    private BigDecimal couponValue;

    @ExcelProperty("使用门槛")
    private BigDecimal useThreshold;

    @ExcelProperty("使用门店")
    private String shopName;

    @ExcelProperty("使用门店地址")
    private String shopAddress;

    @ExcelProperty("门牌号")
    private String shopNumber;

    @ExcelProperty("楼层")
    private String floorName;

    @ExcelProperty("有效期开始")
    private String effectStart;

    @ExcelProperty("有效期结束")
    private String effectEnd;

    @ExcelProperty("使用须知")
    private String usageNote;

    @ExcelProperty("支付状态")
    private String payStatus;

    @ExcelProperty("支付金额")
    private BigDecimal paidAmount;

    @ExcelProperty("微信支付订单号")
    private String transactionId;

    @ExcelProperty("核销码")
    private String writeOffNo;

    @ExcelProperty("核销状态")
    private String writeOffStatus;

    @ExcelProperty("核销时间")
    private String writeOffTime;

    @ExcelProperty("核销人id")
    private Integer writeOffBy;

    @ExcelProperty("核销人昵称")
    private String writeOffByNickname;

    @ExcelProperty("是否过期")
    private String isExpired;

    @ExcelProperty("使用时间")
    private String useTime;

    @ExcelProperty("购买时间")
    private String createTime;

    // -----------退款申请相关字段-------------
    @ExcelProperty("退款申请状态")
    private String refundApplyStatus;

    @ExcelProperty("退款申请原因")
    private String refundReason;

    @ExcelProperty("退款申请时间")
    private String refundApplyTime;

    // -----------审核人相关字段-------------
    @ExcelProperty("审核人昵称")
    private String auditByNickname;

    @ExcelProperty("审核时间")
    private String auditTime;

    @ExcelProperty("审核备注")
    private String auditRemark;

    // -----------退款执行相关字段-------------
    @ExcelProperty("退款状态")
    private String refundStatus;

    @ExcelProperty("退款时间")
    private String refundTime;
}
